#pragma once

#include <iostream>
#include <string>
#include <ctime>
/*
 * 定义日志等级
 *    INFO ： 普通日志
 *    WARNING : 警告
 *    ERROR ： 错误日志
 *    FATAL ： 致命日志
 * */
#define INFO    1
#define WARNING 2
#define ERROR   3
#define FATAL   4

/*
 * 定义日志宏
 *    调用者在调用的地方直接调用宏定义， 屏蔽掉文件名称和行号， 只需要传递等级和日志具体信息
 * */
#define LOG(level, message) Log(#level, message, __FILE__, __LINE__)

/*
 * [等级][时间][具体信息][文件名][行号]
 * */
void Log(std::string level, std::string message, std::string file_name, int line){
    std::cout << "[" << level << "]" << "[" << time(nullptr) << "]" << "[" << message << "]" << "[" << file_name << "]" << "[" << line << "]" << std::endl;
}
